package com.marvels.product.param.service;

import java.util.List;
import java.util.Map;

import com.github.pagehelper.PageInfo;
import com.marvels.common.exception.MarvelsBusinessException;
import com.marvels.product.param.dto.McptProduct;
import com.marvels.product.productmanage.dto.McptProductInfoDTO;
import com.marvels.product.productmanage.dto.McptProductMappedDto;
import com.marvels.product.productmanage.dto.McptProductTypeDto;

public interface ProductItemService {

	public PageInfo<McptProduct> getPageInfoByParam(Map<String, Object> param) throws MarvelsBusinessException;

	public PageInfo<McptProduct> getPageInfoByVersion(Map<String, Object> param) throws MarvelsBusinessException;

	public void updateStatus(McptProduct dto) throws MarvelsBusinessException;

	public List<Map<String, String>> getPtFeeMapList();

	public List<Map<String, String>> getMiscFeeMapList();

	public List<Map<String, String>> getConsultFeeMapList();

	public List<Map<String, String>> getMngFeeMapList();

	public List<Map<String, String>> getPreFeeMapList();

	public List<Map<String, String>> getLateFeeMapList();

	public List<Map<String, String>> getPenaltyMapList();

	public void deleteByPrimaryKey(Long productId) throws MarvelsBusinessException;

	public void updateBatchItem(List<McptProduct> dtoList) throws MarvelsBusinessException;

	public void save(McptProduct dto) throws MarvelsBusinessException;

	public List<Map<Integer, String>> getAmortMethodMapList();

	public List<Map<Integer, String>> getRepaySeqMapList();

	/**根据产品小类code查询产品小类
	 * @author 娄凯琦
	 * @date 2018年5月8日  
	 * @param dto
	 * @return
	 */
	public McptProduct getByProductCode(McptProduct dto) throws MarvelsBusinessException;
	
	
	
	/**
	 * 查询产品小类信息
	 * @param McptProduct
	 * @return
	 */
	public List<McptProductMappedDto> selectProductMappedInfo(McptProductMappedDto mappedDto) ;
	
	
	
	public Map<String,Object> initDataMap(McptProductTypeDto productTypeDto)throws MarvelsBusinessException;
	
	/**
	 * 查询产品类别信息
	 * @param mcpdto
	 * @return
	 */
	public  List<McptProductInfoDTO> selectProductInfo(McptProductInfoDTO mcpdto) throws MarvelsBusinessException;
}
